import request from '@/config/axios'
import type { Dayjs } from 'dayjs';

/** 表字段信息 */
export interface TableFields {
          id: number; // Id
          tableId: number; // 表Id
          fieldName: string; // 字段名
          isPrimaryKey: number; // 是否主键
          isAutoIncrement: number; // 自增
          canNull: number; // 可空
          dataType: string; // 类型
          description: string; // 描述
          length: number; // 长度
          showInTable: number; // 在表格展示
          showInForm: number; // 编辑展示
          showDetail: number; // 详情展示
          showInSerch: number; // 搜索条件
  }

// 表字段 API
export const TableFieldsApi = {
  // 查询表字段分页
  getTableFieldsPage: async (params: any) => {
    return await request.get({ url: `/infra/table-fields/page`, params })
  },

  // 查询表字段详情
  getTableFields: async (id: number) => {
    return await request.get({ url: `/infra/table-fields/get?id=` + id })
  },

  // 新增表字段
  createTableFields: async (data: TableFields) => {
    return await request.post({ url: `/infra/table-fields/create`, data })
  },

  // 修改表字段
  updateTableFields: async (data: TableFields) => {
    return await request.put({ url: `/infra/table-fields/update`, data })
  },

  // 删除表字段
  deleteTableFields: async (id: number) => {
    return await request.delete({ url: `/infra/table-fields/delete?id=` + id })
  },

  /** 批量删除表字段 */
  deleteTableFieldsList: async (ids: number[]) => {
    return await request.delete({ url: `/infra/table-fields/delete-list?ids=${ids.join(',')}` })
  },

  // 导出表字段 Excel
  exportTableFields: async (params) => {
    return await request.download({ url: `/infra/table-fields/export-excel`, params })
  }
}